#include"Track.h"

void Track_Init()
{
    GPIO_InitTypeDef	GPIO_InitStructure;		//结构定义
	GPIO_InitStructure.Pin  = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;		//指定要初始化的IO,
	GPIO_InitStructure.Mode = GPIO_PullUp;	//指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
	GPIO_Inilize(GPIO_P0, &GPIO_InitStructure);//初始化
}

int last_count=0;//当没有检测到黑色带时将按照上次状态运行

int Track_Get()
{
    int count=0;
    u8 num=0;
    if(LED1==1)
    {
        count+=-64;
        num++;
    }

    if(LED2==1)
    {
        count+=-32;
        num++;
    }

    if(LED3==1)
    {
        count+=0;
        num++;
    }

    if(LED4==1)
    {
        count+=32;
        num++;
    }

    if(LED5==1)
    {
        count+=64;
        num++;
    }

    if(num==0)return last_count;//如果一个LED灯都没压着，那么就返回上一次的姿态！
    if(num>0)count=count/num;//取平均值提高稳定
    
    last_count=count;
    return count;
}